package com.my.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;

import java.nio.charset.StandardCharsets;
import java.util.Locale;

/**
 * 国际化消息源配置
 */
@Configuration
public class MessageSourceConfig {

    @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        
        // 设置资源文件路径（支持多个路径）
        messageSource.setBasenames("classpath:i18n/messages");
        
        // 设置文件编码
        messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
        
        // 设置缓存时间（秒），0表示不缓存，方便开发调试
        messageSource.setCacheSeconds(0);
        
        // 设置默认语言为中文
        messageSource.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
        
        // 设置当消息未找到时使用消息键作为默认消息
        messageSource.setUseCodeAsDefaultMessage(true);
        
        // 启用回退到系统语言环境
        messageSource.setFallbackToSystemLocale(true);
        
        return messageSource;
    }
}